package com.ruoyi.system.mapper;

import com.ruoyi.system.domain.SysUserPush;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 用户小程序openid绑定 数据层
 *
 * @author ruoyi
 */
@Mapper
public interface SysUserPushMapper {

    /**
     * 通过用户ID查询用户绑定的openid
     *
     * @param userId 用户ID
     * @return 用户绑定对象信息
     */
    SysUserPush selectUserPushById(Long userId);

    /**
     * 为用户绑定小程序用户openid
     *
     * @param userPush 用户信息
     * @return 结果
     */
    int insertUserPush(SysUserPush userPush);

    /**
     * 修改用户绑定小程序用户openid信息
     *
     * @param userPush 用户信息
     * @return 结果
     */
    int updateUserPush(SysUserPush userPush);

    /**
     * 功能描述:    解绑其他非当前登录账号而绑定该openid的账号
     *
     * @Author wanghc
     * @Date 2022/08/21 16:03
     * @param openid openid是运维小小工公众号的普通用户的一个唯一的标识，只针对当前的公众号有效
     * @param userId 用户id
     * @return int
     */
    int updateUnBundOpenid(@Param("openid") String openid, @Param("userId") Long userId);

    /**
     * 通过用户ID删除用户绑定信息
     *
     * @param userId 用户ID
     * @return 结果
     */
    int deleteUserPushById(Long userId);

    /**
     * 批量删除openid绑定信息
     *
     * @param userIds 需要删除的用户ID
     * @return 结果
     */
    int deleteUserPushByIds(Long[] userIds);
}
